package com.ts.service.achievement;

import com.ts.dto.PatentDTO;
import com.ts.dto.PageDTO;
import com.ts.entity.Patent;
import com.ts.result.PageResult;

/**
 * 专利服务接口
 */
public interface PatentService {

    /**
     * 新增专利
     * @param patentDTO 专利数据传输对象（含新增所需字段）
     */
    void save(PatentDTO patentDTO);

    /**
     * 根据ID删除专利
     * @param id 专利ID
     */
    void deleteById(Long id);

    /**
     * 根据ID更新专利
     * @param patentDTO 专利数据传输对象（含ID及待更新字段）
     */
    void updateById(PatentDTO patentDTO);

    /**
     * 根据ID查询专利
     * @param id 专利ID
     * @return 专利实体（含详情信息）
     */
    Patent getById(Long id);

    /**
     * 分页查询专利
     * @param patentPageDTO 分页查询参数（含页码、每页条数等）
     * @return 分页结果（含总条数、当前页数据等）
     */
    PageResult pageQuery(PageDTO patentPageDTO);
}